home *** CD-ROM | disk | FTP | other *** search
Text File | 1990-04-03 | 3.7 KB | 73 lines | [TEXT/pdos] |
- Apple II
- Technical Notes
- _____________________________________________________________________________
- Developer Technical Support
-
- ProDOS 8
- #27: Hybrid Applications
-
- Written by: Matt Deatherage March 1990
-
- This Technical Note discusses considerations for "hybrid" applications, which
- use Apple IIGS-specific features from ProDOS 8.
- _____________________________________________________________________________
-
- Why Use Hybrid Features?
-
- There are many reasons not to write hybrid applications. If your target
- machine is the Apple IIGS, it's pretty silly to write a ProDOS 8-based
- application. You are limited to the slower I/O model of ProDOS 8, you cannot
- access foreign file systems or large CD-ROM volumes, you cannot reliably
- access the toolbox (patches to the toolbox are only loaded when GS/OS is
- booted, which forces you to require GS/OS to be booted), and you cannot work
- with desk accessories that do disk access (CDAs cannot reliably "save and
- restore" an area of bank zero to use for ProDOS 8 disk access because they
- don't know if an interrupt handling routine is located there).
-
- However, applications targeted for all Apple II computers may reasonably wish
- to take advantage of IIGS features. For example, a word processor or
- telecommunications program may want to use extra IIGS memory. This Note is
- your spiritual guide to such features.
-
-
- Memory Management
-
- Applications wishing to use extended (beyond the lower 128K) memory on the
- IIGS must, like all IIGS applications, get it from the Memory Manager. This
- is not a consideration for non-hybrid applications for two reasons. First,
- when GS/OS launches a ProDOS 8 program, it reserves all of the lower 128K
- memory for ProDOS 8, so no other component (tool, desk accessory, INIT) can
- accidentally use that memory. (In fact, if some of the memory is not
- available, GS/OS refuses to launch ProDOS 8 at all.) Second, when ProDOS 8 is
- directly booted, none of the memory is allocated since these other components,
- which might be using the Memory Manager, aren't loaded either.
-
- If your ProDOS 8 application was launched by GS/OS, all of the managed lower
- 128K has already been allocated for you by GS/OS. If you call MMStartUp, the
- user ID returned is one belonging to GS/OS. In such cases, the auxiliary
- field of the user ID is already being used by GS/OS and must not be altered by
- your application. You also must not call any Memory Manager routine which
- works on all handles of a given user ID, such as DisposeAll or HUnlockAll.
- You must manage all handles individually and not by user ID. You may, if you
- wish, call GetNewID to get a new user ID for use in a user ID-based memory
- management system. The ID should be of type $1000 (application).
-
- You can tell whether your application was launched by GS/OS by checking
- OS_BOOT, the byte value at $E100BD. OS_BOOT is $00 when the boot OS was
- ProDOS 8, indicating that your application was not loaded by GS/OS. If this
- is the case and you want to use extended IIGS memory, you should call GetNewID
- to obtain a new application ID then use NewHandle to allocate four handles to
- hold the memory normally reserved for ProDOS 8 by GS/OS. You should obtain
- memory at $00/0800 (size $B800), $01/0800 (size $B800), $E0/2000 (size $4000)
- and $E1/2000 (size $8000). You may then use MMStartUp to register yourself
- with the Memory Manager; MMStartUp fails if it's being called from an
- unallocated memory block, so you must allocate the memory your application
- occupies first.
-
-
- Further Reference
- _____________________________________________________________________________
- o Apple IIGS Technical Note #17, Application Startup and the MMStartUp
- User ID
-
-